package model.areas;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Map;

import model.materiasYCatedras.Catedra;
import model.materiasYCatedras.CatedraEnHistorial;

public class HistorialDePases {
	private static HistorialDePases Instancia = null;
	Map <String, PaseEnHistorial> pases = new HashMap<String, PaseEnHistorial>();
	
	private HistorialDePases(){}
	
	/**
	 * Esta clase seria un Singleton ya que permanece vigente siempre que este instanciada
	 * 
	 * @return
	 */
	public static HistorialDePases getInstance(){
		
		if(Instancia == null){
			Instancia = new HistorialDePases();
			System.out.println("se creo una instancia de HistorialCatedra");
			return Instancia;
		}else{
			System.out.println("ya estaba creada");
			return Instancia;
		}
	}
	
	public Map<String, PaseEnHistorial> getPases() {
		return pases;
	}

	public void setPases(Map<String, PaseEnHistorial> pases) {
		this.pases = pases;
	}

	public Pase clonar(Pase unPase){
		Pase paseClonado = new Pase(unPase.getDocente(), unPase.getOrigen(), unPase.getDestino());
		this.setearPaseClonado(paseClonado, unPase);
		return paseClonado;
	}
	
	public void setearPaseClonado(Pase aSetear, Pase seteada){
		aSetear.setDocente(seteada.getDocente());
		aSetear.setOrigen(seteada.getOrigen());
		aSetear.setDestino(seteada.getDestino());
		aSetear.setEstadoDelPase(seteada.getEstadoDelPase());
	}
	
	public void agregarPaseAlhistorial(Pase unPase){
		SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
		this.getPases().put(dateFormat.format(Calendar.getInstance().getTime()), new PaseEnHistorial(this.clonar(unPase)));
	}
}
